#ifndef MT4CHART_H
#define MT4CHART_H


#include <QWidget>
#include <QDateTime>
#include <QVector>
#include <QPen>

class MT4Chart : public QWidget
{
    Q_OBJECT
public:
    explicit MT4Chart(QWidget *parent = nullptr);

    // 设置价格范围
    void setPriceRange(double minPrice, double maxPrice);
    // 设置时间范围
    void setTimeRange(const QDateTime& startTime, const QDateTime& endTime);
    // 设置网格线属性
    void setGridProperties(int majorLineWidth, int minorLineWidth,
                           int majorHLineCount, int minorHLineCount,
                           int majorVLineCount, int minorVLineCount);

protected:
    void paintEvent(QPaintEvent *event) override;

private:
    // 价格范围
    double m_minPrice = 0.0;
    double m_maxPrice = 0.0;

    // 时间范围
    QDateTime m_startTime;
    QDateTime m_endTime;

    // 网格线属性
    int m_majorLineWidth = 2;   // 主网格线宽度
    int m_minorLineWidth = 1;   // 次网格线宽度
    int m_majorHLineCount = 5;  // 水平主网格线数量
    int m_minorHLineCount = 4;  // 水平次网格线数量（主网格之间）
    int m_majorVLineCount = 6;  // 垂直主网格线数量
    int m_minorVLineCount = 3;  // 垂直次网格线数量（主网格之间）

    // 画笔
    QPen m_majorPen;    // 主网格线画笔
    QPen m_minorPen;    // 次网格线画笔

    // 计算绘图区域（排除边框和刻度）
    QRectF chartPlotArea() const;
};
#endif // MT4CHART_H
